home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / Reference / DevCon / Washington_1988 / Devcon_Extras / Example_Code / JoyportOutput / SetFire.c next >
Encoding:
C/C++ Source or Header  |  1992-08-27  |  1.2 KB  |  61 lines

  1. /*
  2.  * SetFire.c   C. Scheppner  CBM  01/89
  3.  * Sets right mouseport FIRE pin (pin 6) to 0 or 1
  4.  */
  5.  
  6. #include <exec/types.h>
  7. #include <hardware/cia.h>
  8. #include <libraries/dos.h>
  9.  
  10. #define DELAY 500
  11.  
  12. extern struct CIA ciaa;
  13.  
  14. main(argc,argv)
  15. int argc;
  16. char **argv;
  17.    {
  18.    ULONG delay = 500;
  19.  
  20.    if(argc > 1)
  21.       {
  22.       if(argv[1][0]=='?')
  23.          cleanexit("USAGE: SetFire (demos setting joy pin 6 to 1 or 0)\n",0);
  24.       }
  25.  
  26.    printf("SetFire sets right mouseport pin 6 to ~0v and ~5v\n");
  27.    printf("To exit, use CTRL/C\n");
  28.  
  29.    /* set right fire pin to output */
  30.    ciaa.ciaddra = ciaa.ciaddra | CIAF_GAMEPORT1;
  31.  
  32.    /* loop until CTRL/C */
  33.    while(!(SetSignal(0,0) & SIGBREAKF_CTRL_C))
  34.       {
  35.       /* turn off fire pin */
  36.       ciaa.ciapra = ciaa.ciapra & (~CIAF_GAMEPORT1);
  37.       printf("\nSet to 0...");
  38.       Delay(delay);
  39.  
  40.  
  41.       /* turn on fire pin */
  42.       ciaa.ciapra = ciaa.ciapra | CIAF_GAMEPORT1;
  43.       printf("  Set to 1...");
  44.       Delay(delay);
  45.       }
  46.  
  47.    printf("\n");
  48.    /* set right fire pin back to input */
  49.    ciaa.ciaddra = ciaa.ciaddra & (~CIAF_GAMEPORT1);
  50.    exit(0);
  51.    }
  52.  
  53. cleanexit(s,n)
  54. char *s;
  55. int n;
  56.    {
  57.    if(*s)  printf(s);
  58.    exit(n);
  59.    }
  60.  
  61.